package com.musemun.service.function;

import com.musemun.pojo.Crfixifo;
import com.musemun.pojo.Cropifo;
import com.musemun.pojo.Fixcontact;
import com.musemun.pojo.Vo.CrFixVo;
import com.musemun.pojo.Vo.PagingVo;

import java.util.Date;
import java.util.List;

/**
 * @description:
 *       文物修理接口
 *        操作出库入库修复
 * @author winner
 * @date 2020/4/19
 */
public interface CulturalRelicFix {


    /**
     *  根据文物编号查询
     * @param crNo 文物编号
     * @return 修复信息
     */
    public CrFixVo findById(Long crNo);

    /**
     * 分页查询，当pageNum、pageSize都为0时不分页
     * 根据外借人名字查询
     * @param name 外借人名字
     * @param pageNum 当前页
     * @param pageSize 页大小
     * @return list -> 修复信息
     */
    public PagingVo findByName(String name, int pageNum, int pageSize);

    /**
     * 分页查询，，当pageNum、pageSize都为0时不分页
     * @param pageNum 当前页
     * @param pageSize 页大小
     * @return list -> 修复信息
     */
    public PagingVo selectAll(int pageNum, int pageSize);

    /**
     *  插入一条文物修复的记录
     * @param crfixifo 文物修复详情表
     * @param fixcontact 文物修复联系人表
     * @param cropifo 文物操作记录表
     * @return 操作是否成功
     */
    public boolean insert(Crfixifo crfixifo, Fixcontact fixcontact, Cropifo cropifo);

    /**
     * 删除一条文物修复的记录
     * @param crNo 文物编号
     * @return 操作是否成功
     */
    public boolean delete(long crNo);

    /**
     *  对应GET请求，先返回信息
     * @param crNo
     * @return  文物修复详情表，文物修复联系人表
     */
    public CrFixVo update(long crNo);

    /**
     * 对应POST请求
     * @param crfixifo 文物修复详情表
     * @param fixcontact 文物修复联系人表
     * @return 操作是否成功
     */
    public boolean update(Crfixifo crfixifo, Fixcontact fixcontact);

    /**
     * 根据外借时间查询
     *      *      * 1： 查询小于lefttime
     *      *      * 2： 查询lefttime-righttime之间
     *      *      * 3： 查询大于lefttime
     * @param leftTime
     * @param rightTime
     * @param operate
     * @return
     */
    public List<Crfixifo> findByTime(Date leftTime, Date rightTime, int operate);



}
